package com.kingmed.kmss.common.dto.base;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * Entity基类
 *
 */

@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
public class BaseEntityDTO implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value="每页条数",example = "25")
    private Long pageSize;

    @ApiModelProperty(value="当前页码",example = "1")
    private Long pageNo;

    /**
     * 所属组织机构ID，以当前操作人为准
     */
    @ApiModelProperty("所属组织机构ID")
    private Long orgId;

    /**
     * 可用状态（0=草稿，1=可用/有效，2=失效/不可用/归档状态）
     */
    @ApiModelProperty("可用状态（0=草稿，1=可用/有效，2=失效/不可用/归档状态）")
    private Integer status;


    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新者
     */
    @ApiModelProperty("创建时间")
    private String updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 删除者
     */
    @ApiModelProperty("删除者")
    private String deleteBy;

    /**
     * 删除时间
     */
    @ApiModelProperty("删除时间")
    private Date deleteTime;

    /**
     * 删除标记
     */
    @ApiModelProperty("删除标记")
    private Integer deleteFlag;

    /**
     * 版本号
     */
    @ApiModelProperty("版本号")
    private Long recordVersion;

    /**
     * 审批状态
     */
    @ApiModelProperty("审批状态（0=草稿，1=审批中，2=预留，3=审批驳回，4=审批通过)")
    private Integer auditStatus;

}
